6.2 组 2:FP32 / FP16 / packed 16 位(unit: valu-fp,178 条)
binary32 运算(R / RU / X)(66 条)
FADD
语法(Syntax)
fadd.f32 rd:v rs1:v rs2:v
fadd.f32.vu rd:v rs1:v rs2:u
fadd.f32.m rd:v rs1:v rs2:v rm:rm neg:mod3 abs:mod3 sat:u1
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fadd.f32 | R op opcode=0x14 f4=0x0 | fixed:4 | d = s1 + s2(binary32) | fm |
fadd.f32.vu | RU op opcode=0x16 f5=0x0 | fixed:4 | d = s1 + u2(binary32) | fm |
fadd.f32.m | X op opcode=0x1 f10=0x1 | fixed:5 | d = s1 + s2(rm / neg / abs / sat 修饰) | fm rmo |
FSUB
语法(Syntax)
fsub.f32 rd:v rs1:v rs2:v
fsub.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fsub.f32 | R op opcode=0x14 f4=0x1 | fixed:4 | d = s1 - s2(binary32) | fm |
fsub.f32.vu | RU op opcode=0x16 f5=0x1 | fixed:4 | d = s1 - u2(binary32) | fm |
FMUL
语法(Syntax)
fmul.f32 rd:v rs1:v rs2:v
fmul.f32.vu rd:v rs1:v rs2:u
fmul.f32.m rd:v rs1:v rs2:v rm:rm neg:mod3 abs:mod3 sat:u1
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fmul.f32 | R op opcode=0x14 f4=0x2 | fixed:4 | d = s1 * s2(binary32) | fm |
fmul.f32.vu | RU op opcode=0x16 f5=0x2 | fixed:4 | d = s1 * u2(binary32) | fm |
fmul.f32.m | X op opcode=0x1 f10=0x2 | fixed:5 | d = s1 * s2(rm / neg / abs / sat 修饰) | fm rmo |
FMIN
语法(Syntax)
fmin.f32 rd:v rs1:v rs2:v
fmin.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fmin.f32 | R op opcode=0x14 f4=0x3 | fixed:4 | d = minimumNumber(s1, s2)(-0 < +0;单 NaN 返回另一操作数) | fm |
fmin.f32.vu | RU op opcode=0x16 f5=0x3 | fixed:4 | d = minimumNumber(s1, u2)(-0 < +0;单 NaN 返回另一操作数) | fm |
FMAX
语法(Syntax)
fmax.f32 rd:v rs1:v rs2:v
fmax.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fmax.f32 | R op opcode=0x14 f4=0x4 | fixed:4 | d = maximumNumber(s1, s2)(-0 < +0;单 NaN 返回另一操作数) | fm |
fmax.f32.vu | RU op opcode=0x16 f5=0x4 | fixed:4 | d = maximumNumber(s1, u2)(-0 < +0;单 NaN 返回另一操作数) | fm |
FSGNJ
语法(Syntax)
fsgnj.f32 rd:v rs1:v rs2:v
fsgnj.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fsgnj.f32 | R op opcode=0x14 f4=0x5 | fixed:4 | d = {s2.sign, s1[30:0]}(binary32) | fm |
fsgnj.f32.vu | RU op opcode=0x16 f5=0x5 | fixed:4 | d = {u2.sign, s1[30:0]}(binary32) | fm |
FSGNJN
语法(Syntax)
fsgnjn.f32 rd:v rs1:v rs2:v
fsgnjn.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fsgnjn.f32 | R op opcode=0x14 f4=0x6 | fixed:4 | d = {~s2.sign, s1[30:0]}(binary32) | fm |
fsgnjn.f32.vu | RU op opcode=0x16 f5=0x6 | fixed:4 | d = {~u2.sign, s1[30:0]}(binary32) | fm |
FSGNJX
语法(Syntax)
fsgnjx.f32 rd:v rs1:v rs2:v
fsgnjx.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fsgnjx.f32 | R op opcode=0x14 f4=0x7 | fixed:4 | d = {s1.sign ^ s2.sign, s1[30:0]}(binary32) | fm |
fsgnjx.f32.vu | RU op opcode=0x16 f5=0x7 | fixed:4 | d = {s1.sign ^ u2.sign, s1[30:0]}(binary32) | fm |
FEQ
语法(Syntax)
feq.f32 rd:v rs1:v rs2:v
feq.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
feq.f32 | R op opcode=0x14 f4=0x8 | fixed:4 | d = (s1 == s2) ? 1 : 0(quiet) | fm |
feq.f32.vu | RU op opcode=0x16 f5=0x8 | fixed:4 | d = (s1 == u2) ? 1 : 0(quiet) | fm |
FLT
语法(Syntax)
flt.f32 rd:v rs1:v rs2:v
flt.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
flt.f32 | R op opcode=0x14 f4=0x9 | fixed:4 | d = (s1 < s2) ? 1 : 0(signaling) | fm |
flt.f32.vu | RU op opcode=0x16 f5=0x9 | fixed:4 | d = (s1 < u2) ? 1 : 0(signaling) | fm |
FLE
语法(Syntax)
fle.f32 rd:v rs1:v rs2:v
fle.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fle.f32 | R op opcode=0x14 f4=0xa | fixed:4 | d = (s1 <= s2) ? 1 : 0(signaling) | fm |
fle.f32.vu | RU op opcode=0x16 f5=0xa | fixed:4 | d = (s1 <= u2) ? 1 : 0(signaling) | fm |
FMAC
语法(Syntax)
fmac.f32 rd:v* rs1:v rs2:v
fmac.f32.vu rd:v* rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fmac.f32 | R op opcode=0x14 f4=0xb | fixed:4 | d = fma(s1, s2, d)(一次舍入) | fm |
fmac.f32.vu | RU op opcode=0x16 f5=0xb | fixed:4 | d = fma(s1, u2, d)(一次舍入) | fm |
FLDEXP
语法(Syntax)
fldexp.f32 rd:v rs1:v rs2:v
fldexp.f32.vu rd:v rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fldexp.f32 | R op opcode=0x14 f4=0xc | fixed:4 | d = s1 * 2^(int)s2(精确、正确舍入) | fm |
fldexp.f32.vu | RU op opcode=0x16 f5=0xc | fixed:4 | d = s1 * 2^(int)u2(精确、正确舍入) | fm |
FSUBR
语法(Syntax)
fsubr.f32.vu rd:v rs1:v rs2:u
描述:d = u2 - s1(binary32)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fsubr.f32.vu | RU op opcode=0x16 f5=0xd | fixed:4 | fm |
PKADD
语法(Syntax)
pkadd.f16 rd:v rs1:v rs2:v
pkadd.i16 rd:v rs1:v rs2:v
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
pkadd.f16 | R op opcode=0x1a f4=0x0 | fixed:4 | d 两半各自做 binary16 加法 | h16 fm |
pkadd.i16 | R op opcode=0x1a f4=0x5 | fixed:4 | packed 16 位加法(回绕) | h16 |
PKMUL
语法(Syntax)
pkmul.f16 rd:v rs1:v rs2:v
pkmul.i16 rd:v rs1:v rs2:v
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
pkmul.f16 | R op opcode=0x1a f4=0x1 | fixed:4 | d 两半各自做 binary16 乘法 | h16 fm |
pkmul.i16 | R op opcode=0x1a f4=0x7 | fixed:4 | packed 16 位乘法(低 16 位) | h16 |
PKMIN
语法(Syntax)
pkmin.f16 rd:v rs1:v rs2:v
pkmin.i16 rd:v rs1:v rs2:v
pkmin.u16 rd:v rs1:v rs2:v
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
pkmin.f16 | R op opcode=0x1a f4=0x2 | fixed:4 | packed binary16 minimumNumber | h16 fm |
pkmin.i16 | R op opcode=0x1a f4=0xb | fixed:4 | packed 有符号 16 位 min | h16 |
pkmin.u16 | R op opcode=0x1a f4=0xd | fixed:4 | packed 无符号 16 位 min | h16 |
PKMAX
语法(Syntax)
pkmax.f16 rd:v rs1:v rs2:v
pkmax.i16 rd:v rs1:v rs2:v
pkmax.u16 rd:v rs1:v rs2:v
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
pkmax.f16 | R op opcode=0x1a f4=0x3 | fixed:4 | packed binary16 maximumNumber | h16 fm |
pkmax.i16 | R op opcode=0x1a f4=0xc | fixed:4 | packed 有符号 16 位 max | h16 |
pkmax.u16 | R op opcode=0x1a f4=0xe | fixed:4 | packed 无符号 16 位 max | h16 |
PKFMAC
语法(Syntax)
pkfmac.f16 rd:v* rs1:v rs2:v
描述:d.x = fma(s1.x, s2.x, d.x),x ∈ {l, h}
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
pkfmac.f16 | R op opcode=0x1a f4=0x4 | fixed:4 | h16 fm |
PKSUB
语法(Syntax)
pksub.i16 rd:v rs1:v rs2:v
pksub.f16 rd:v rs1:v rs2:v
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
pksub.i16 | R op opcode=0x1a f4=0x6 | fixed:4 | packed 16 位减法(回绕) | h16 |
pksub.f16 | R op opcode=0x1a f4=0xf | fixed:4 | d 两半各自做 binary16 减法 | h16 fm |
PKSLL
语法(Syntax)
pksll.i16 rd:v rs1:v rs2:v
描述:d.x = s1.x << s2.x[3:0]
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
pksll.i16 | R op opcode=0x1a f4=0x8 | fixed:4 | h16 |
PKSRL
语法(Syntax)
pksrl.i16 rd:v rs1:v rs2:v
描述:d.x = s1.x >>u s2.x[3:0]
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
pksrl.i16 | R op opcode=0x1a f4=0x9 | fixed:4 | h16 |
PKSRA
语法(Syntax)
pksra.i16 rd:v rs1:v rs2:v
描述:d.x = s1.x >>s s2.x[3:0]
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
pksra.i16 | R op opcode=0x1a f4=0xa | fixed:4 | h16 |
PKCVT
语法(Syntax)
pkcvt.f16.f32 rd:v rs1:v rs2:v
pkcvt.unorm16.f32 rd:v rs1:v rs2:v
pkcvt.snorm16.f32 rd:v rs1:v rs2:v
pkcvt.u16.u32 rd:v rs1:v rs2:v
pkcvt.i16.i32 rd:v rs1:v rs2:v
pkcvt.unorm8.f32 rd:v* rs1:v rs2:v
pkcvt.unorm8h.f32 rd:v* rs1:v rs2:v
pkcvt.f16.f32.m rd:v rs1:v rs2:v rm:rm
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
pkcvt.f16.f32 | R op opcode=0x1c f4=0x0 | fixed:4 | d = {half(s2), half(s1)},MODE.rm16 | fm |
pkcvt.unorm16.f32 | R op opcode=0x1c f4=0x1 | fixed:4 | d = {unorm16(s2), unorm16(s1)}(钳 [0,1],×65535,RNE) | - |
pkcvt.snorm16.f32 | R op opcode=0x1c f4=0x2 | fixed:4 | d = {snorm16(s2), snorm16(s1)}(钳 [-1,1],×32767,RNE;-1 → -32767) | - |
pkcvt.u16.u32 | R op opcode=0x1c f4=0x3 | fixed:4 | d = {sat_u16(s2), sat_u16(s1)} | - |
pkcvt.i16.i32 | R op opcode=0x1c f4=0x4 | fixed:4 | d = {sat_s16(s2), sat_s16(s1)} | - |
pkcvt.unorm8.f32 | R op opcode=0x1c f4=0x8 | fixed:4 | 低 16 位写入两个 unorm8 字节(d[31:16] 保留) | - |
pkcvt.unorm8h.f32 | R op opcode=0x1c f4=0x9 | fixed:4 | 高 16 位写入两个 unorm8 字节(d[15:0] 保留) | - |
pkcvt.f16.f32.m | X op opcode=0x1 f10=0x1a | fixed:5 | d = {half(s2), half(s1)},显式 rm | fm rmo h16 |
PACK
语法(Syntax)
pack.lo.b16 rd:v rs1:v rs2:v
pack.hi.b16 rd:v rs1:v rs2:v
pack.lohi.b16 rd:v rs1:v rs2:v
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
pack.lo.b16 | R op opcode=0x1c f4=0x5 | fixed:4 | d = {s2[15:0], s1[15:0]} | - |
pack.hi.b16 | R op opcode=0x1c f4=0x6 | fixed:4 | d = {s2[31:16], s1[31:16]} | - |
pack.lohi.b16 | R op opcode=0x1c f4=0x7 | fixed:4 | d = {s2[31:16], s1[15:0]} | - |
FFMA
语法(Syntax)
ffma.f32 rd:v rs1:v rs2:v rs3:v rm:rm neg:mod3 abs:mod3 sat:u1
描述:d = fma(s1, s2, s3)(一次舍入,显式 rm)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
ffma.f32 | X op opcode=0x1 f10=0x0 | fixed:5 | fm rmo |
FMED3
语法(Syntax)
fmed3.f32 rd:v rs1:v rs2:v rs3:v
描述:d = median(s1, s2, s3)(有 NaN 时返回非 NaN 值的 min3)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fmed3.f32 | X op opcode=0x1 f10=0x3 | fixed:5 | fm |
DOT2
语法(Syntax)
dot2.f32.f16 rd:v rs1:v rs2:v rs3:v
描述:d = s3 + s1.ls2.l + s1.hs2.h(f16 乘积精确求和,一次舍入到 f32)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
dot2.f32.f16 | X op opcode=0x1 f10=0x11 | fixed:5 | fm |
PKFMA
语法(Syntax)
pkfma.f16 rd:v rs1:v rs2:v rs3:v rm:rm
描述:d.x = fma(s1.x, s2.x, s3.x)(packed binary16,显式 rm)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
pkfma.f16 | X op opcode=0x1 f10=0x12 | fixed:5 | fm h16 rmo |
FCVT
语法(Syntax)
fcvt.f32.i32.m rd:v rs1:v rm:rm
fcvt.f32.u32.m rd:v rs1:v rm:rm
fcvt.i32.f32.m rd:v rs1:v rm:rm
fcvt.u32.f32.m rd:v rs1:v rm:rm
fcvt.f16.f32.lo.m rd:v* rs1:v rm:rm
fcvt.f16.f32.hi.m rd:v* rs1:v rm:rm
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fcvt.f32.i32.m | X op opcode=0x1 f10=0x14 | fixed:5 | d = float(int32(s1)),显式 rm | fm rmo |
fcvt.f32.u32.m | X op opcode=0x1 f10=0x15 | fixed:5 | d = float(uint32(s1)),显式 rm | fm rmo |
fcvt.i32.f32.m | X op opcode=0x1 f10=0x16 | fixed:5 | d = int32(s1),RTZ 饱和,显式 rm | fm rmo |
fcvt.u32.f32.m | X op opcode=0x1 f10=0x17 | fixed:5 | d = uint32(s1),RTZ 饱和,显式 rm | fm rmo |
fcvt.f16.f32.lo.m | X op opcode=0x1 f10=0x18 | fixed:5 | d.l = half(s1),显式 rm(d.h 不变) | fm rmo h16 |
fcvt.f16.f32.hi.m | X op opcode=0x1 f10=0x19 | fixed:5 | d.h = half(s1),显式 rm(d.l 不变) | fm rmo h16 |
binary32 literal 源(XL)(6 条)
FADD
语法(Syntax)
fadd.f32.vl rd:v rs1:v imm:k32
描述:d = s1 + f32(imm32)(binary32)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fadd.f32.vl | XL op opcode=0x5 f11=0x7 | fixed:4 | fm |
FMUL
语法(Syntax)
fmul.f32.vl rd:v rs1:v imm:k32
描述:d = s1 * f32(imm32)(binary32)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fmul.f32.vl | XL op opcode=0x5 f11=0x8 | fixed:4 | fm |
FMAC
语法(Syntax)
fmac.f32.vl rd:v* rs1:v imm:k32
描述:d = fma(s1, f32(imm32), d)(一次舍入)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fmac.f32.vl | XL op opcode=0x5 f11=0x9 | fixed:4 | fm |
FMIN
语法(Syntax)
fmin.f32.vl rd:v rs1:v imm:k32
描述:d = minimumNumber(s1, f32(imm32))(-0 < +0;单 NaN 返回另一操作数)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fmin.f32.vl | XL op opcode=0x5 f11=0xa | fixed:4 | fm |
FMAX
语法(Syntax)
fmax.f32.vl rd:v rs1:v imm:k32
描述:d = maximumNumber(s1, f32(imm32))(-0 < +0;单 NaN 返回另一操作数)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fmax.f32.vl | XL op opcode=0x5 f11=0xb | fixed:4 | fm |
FSUBR
语法(Syntax)
fsubr.f32.vl rd:v rs1:v imm:k32
描述:d = f32(imm32) - s1(binary32)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fsubr.f32.vl | XL op opcode=0x5 f11=0xc | fixed:4 | fm |
binary32 一元与转换(R1)(21 条)
FCLASS
语法(Syntax)
fclass.f32 rd:v rs1:v
描述:d = fclass(s1)(RISC-V 10 位掩码)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fclass.f32 | R1 op opcode=0x18 f11=0x0 | fixed:4 | - |
FFLOOR
语法(Syntax)
ffloor.f32 rd:v rs1:v
描述:d = floor(s1)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
ffloor.f32 | R1 op opcode=0x18 f11=0x1 | fixed:4 | fm |
FCEIL
语法(Syntax)
fceil.f32 rd:v rs1:v
描述:d = ceil(s1)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fceil.f32 | R1 op opcode=0x18 f11=0x2 | fixed:4 | fm |
FTRUNC
语法(Syntax)
ftrunc.f32 rd:v rs1:v
描述:d = trunc(s1)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
ftrunc.f32 | R1 op opcode=0x18 f11=0x3 | fixed:4 | fm |
FRNDNE
语法(Syntax)
frndne.f32 rd:v rs1:v
描述:d = round_half_even(s1)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
frndne.f32 | R1 op opcode=0x18 f11=0x4 | fixed:4 | fm |
FFRACT
语法(Syntax)
ffract.f32 rd:v rs1:v
描述:d = s1 - floor(s1)(钳到 < 1.0)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
ffract.f32 | R1 op opcode=0x18 f11=0x5 | fixed:4 | fm |
FSAT
语法(Syntax)
fsat.f32 rd:v rs1:v
描述:d = clamp(s1, 0.0, 1.0);NaN → +0
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fsat.f32 | R1 op opcode=0x18 f11=0x6 | fixed:4 | fm |
FCVT
语法(Syntax)
fcvt.i32.f32 rd:v rs1:v
fcvt.u32.f32 rd:v rs1:v
fcvt.f32.i32 rd:v rs1:v
fcvt.f32.u32 rd:v rs1:v
fcvt.f16.f32.lo rd:v* rs1:v
fcvt.f16.f32.hi rd:v* rs1:v
fcvt.f32.f16.lo rd:v rs1:v
fcvt.f32.f16.hi rd:v rs1:v
fcvt.f32.ubyte0 rd:v rs1:v
fcvt.f32.ubyte1 rd:v rs1:v
fcvt.f32.ubyte2 rd:v rs1:v
fcvt.f32.ubyte3 rd:v rs1:v
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fcvt.i32.f32 | R1 op opcode=0x18 f11=0x7 | fixed:4 | d = int32(s1),RTZ 饱和;NaN → 0x7fffffff | fm |
fcvt.u32.f32 | R1 op opcode=0x18 f11=0x8 | fixed:4 | d = uint32(s1),RTZ 饱和;NaN → 0xffffffff | fm |
fcvt.f32.i32 | R1 op opcode=0x18 f11=0x9 | fixed:4 | d = float(int32(s1)),MODE.rm | fm |
fcvt.f32.u32 | R1 op opcode=0x18 f11=0xa | fixed:4 | d = float(uint32(s1)),MODE.rm | fm |
fcvt.f16.f32.lo | R1 op opcode=0x18 f11=0xb | fixed:4 | d.l = half(s1)(d.h 不变) | fm h16 |
fcvt.f16.f32.hi | R1 op opcode=0x18 f11=0xc | fixed:4 | d.h = half(s1)(d.l 不变) | fm h16 |
fcvt.f32.f16.lo | R1 op opcode=0x18 f11=0xd | fixed:4 | d = float(s1.l)(精确) | fm h16 |
fcvt.f32.f16.hi | R1 op opcode=0x18 f11=0xe | fixed:4 | d = float(s1.h)(精确) | fm h16 |
fcvt.f32.ubyte0 | R1 op opcode=0x18 f11=0xf | fixed:4 | d = float(s1[7:0]) | - |
fcvt.f32.ubyte1 | R1 op opcode=0x18 f11=0x10 | fixed:4 | d = float(s1[15:8]) | - |
fcvt.f32.ubyte2 | R1 op opcode=0x18 f11=0x11 | fixed:4 | d = float(s1[23:16]) | - |
fcvt.f32.ubyte3 | R1 op opcode=0x18 f11=0x12 | fixed:4 | d = float(s1[31:24]) | - |
FREXP
语法(Syntax)
frexp.mant.f32 rd:v rs1:v
frexp.exp.f32 rd:v rs1:v
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
frexp.mant.f32 | R1 op opcode=0x18 f11=0x13 | fixed:4 | d = frexp 尾数([0.5,1),符号保留;NaN/inf 原样透传、不置标志) | fm |
frexp.exp.f32 | R1 op opcode=0x18 f11=0x14 | fixed:4 | d = frexp 指数(int32;0/inf/NaN → 0) | - |
比较 → uniform 掩码(C / CU / CI)(30 条)
CMP
语法(Syntax)
cmp.eq.f32 rd:u rs1:v rs2:v
cmp.ne.f32 rd:u rs1:v rs2:v
cmp.lt.f32 rd:u rs1:v rs2:v
cmp.le.f32 rd:u rs1:v rs2:v
cmp.gt.f32 rd:u rs1:v rs2:v
cmp.ge.f32 rd:u rs1:v rs2:v
cmp.o.f32 rd:u rs1:v rs2:v
cmp.u.f32 rd:u rs1:v rs2:v
cmp.equ.f32 rd:u rs1:v rs2:v
cmp.neu.f32 rd:u rs1:v rs2:v
cmp.ltu.f32 rd:u rs1:v rs2:v
cmp.leu.f32 rd:u rs1:v rs2:v
cmp.gtu.f32 rd:u rs1:v rs2:v
cmp.geu.f32 rd:u rs1:v rs2:v
cmp.class.f32 rd:u rs1:v rs2:v
cmp.eq.f32.vu rd:u rs1:v rs2:u
cmp.ne.f32.vu rd:u rs1:v rs2:u
cmp.lt.f32.vu rd:u rs1:v rs2:u
cmp.le.f32.vu rd:u rs1:v rs2:u
cmp.gt.f32.vu rd:u rs1:v rs2:u
cmp.ge.f32.vu rd:u rs1:v rs2:u
cmp.o.f32.vu rd:u rs1:v rs2:u
cmp.u.f32.vu rd:u rs1:v rs2:u
cmp.equ.f32.vu rd:u rs1:v rs2:u
cmp.neu.f32.vu rd:u rs1:v rs2:u
cmp.ltu.f32.vu rd:u rs1:v rs2:u
cmp.leu.f32.vu rd:u rs1:v rs2:u
cmp.gtu.f32.vu rd:u rs1:v rs2:u
cmp.geu.f32.vu rd:u rs1:v rs2:u
cmp.class.f32.vu rd:u rs1:v rs2:u
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
cmp.eq.f32 | C op opcode=0x26 f5=0x6 | fixed:4 | U[d] = EXEC 内满足 s1 ordered == s2(binary32)的 lane 掩码 | re ur fm |
cmp.ne.f32 | C op opcode=0x26 f5=0x7 | fixed:4 | U[d] = EXEC 内满足 s1 ordered != s2(binary32)的 lane 掩码 | re ur fm |
cmp.lt.f32 | C op opcode=0x26 f5=0x8 | fixed:4 | U[d] = EXEC 内满足 s1 ordered < s2(binary32)的 lane 掩码 | re ur fm |
cmp.le.f32 | C op opcode=0x26 f5=0x9 | fixed:4 | U[d] = EXEC 内满足 s1 ordered <= s2(binary32)的 lane 掩码 | re ur fm |
cmp.gt.f32 | C op opcode=0x26 f5=0xa | fixed:4 | U[d] = EXEC 内满足 s1 ordered > s2(binary32)的 lane 掩码 | re ur fm |
cmp.ge.f32 | C op opcode=0x26 f5=0xb | fixed:4 | U[d] = EXEC 内满足 s1 ordered >= s2(binary32)的 lane 掩码 | re ur fm |
cmp.o.f32 | C op opcode=0x26 f5=0xc | fixed:4 | U[d] = EXEC 内满足 s1 ordered(均非 NaN) s2(binary32)的 lane 掩码 | re ur fm |
cmp.u.f32 | C op opcode=0x26 f5=0xd | fixed:4 | U[d] = EXEC 内满足 s1 unordered(任一 NaN) s2(binary32)的 lane 掩码 | re ur fm |
cmp.equ.f32 | C op opcode=0x26 f5=0xe | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 == s2(binary32)的 lane 掩码 | re ur fm |
cmp.neu.f32 | C op opcode=0x26 f5=0xf | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 != s2(binary32)的 lane 掩码 | re ur fm |
cmp.ltu.f32 | C op opcode=0x26 f5=0x10 | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 < s2(binary32)的 lane 掩码 | re ur fm |
cmp.leu.f32 | C op opcode=0x26 f5=0x11 | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 <= s2(binary32)的 lane 掩码 | re ur fm |
cmp.gtu.f32 | C op opcode=0x26 f5=0x12 | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 > s2(binary32)的 lane 掩码 | re ur fm |
cmp.geu.f32 | C op opcode=0x26 f5=0x13 | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 >= s2(binary32)的 lane 掩码 | re ur fm |
cmp.class.f32 | C op opcode=0x26 f5=0x14 | fixed:4 | U[d] = EXEC 内 (fclass(s1) & s2) != 0 的 lane 掩码 | re ur fm |
cmp.eq.f32.vu | CU op opcode=0x28 f6=0x6 | fixed:4 | U[d] = EXEC 内满足 s1 ordered == u2(binary32)的 lane 掩码 | re ur fm |
cmp.ne.f32.vu | CU op opcode=0x28 f6=0x7 | fixed:4 | U[d] = EXEC 内满足 s1 ordered != u2(binary32)的 lane 掩码 | re ur fm |
cmp.lt.f32.vu | CU op opcode=0x28 f6=0x8 | fixed:4 | U[d] = EXEC 内满足 s1 ordered < u2(binary32)的 lane 掩码 | re ur fm |
cmp.le.f32.vu | CU op opcode=0x28 f6=0x9 | fixed:4 | U[d] = EXEC 内满足 s1 ordered <= u2(binary32)的 lane 掩码 | re ur fm |
cmp.gt.f32.vu | CU op opcode=0x28 f6=0xa | fixed:4 | U[d] = EXEC 内满足 s1 ordered > u2(binary32)的 lane 掩码 | re ur fm |
cmp.ge.f32.vu | CU op opcode=0x28 f6=0xb | fixed:4 | U[d] = EXEC 内满足 s1 ordered >= u2(binary32)的 lane 掩码 | re ur fm |
cmp.o.f32.vu | CU op opcode=0x28 f6=0xc | fixed:4 | U[d] = EXEC 内满足 s1 ordered(均非 NaN) u2(binary32)的 lane 掩码 | re ur fm |
cmp.u.f32.vu | CU op opcode=0x28 f6=0xd | fixed:4 | U[d] = EXEC 内满足 s1 unordered(任一 NaN) u2(binary32)的 lane 掩码 | re ur fm |
cmp.equ.f32.vu | CU op opcode=0x28 f6=0xe | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 == u2(binary32)的 lane 掩码 | re ur fm |
cmp.neu.f32.vu | CU op opcode=0x28 f6=0xf | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 != u2(binary32)的 lane 掩码 | re ur fm |
cmp.ltu.f32.vu | CU op opcode=0x28 f6=0x10 | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 < u2(binary32)的 lane 掩码 | re ur fm |
cmp.leu.f32.vu | CU op opcode=0x28 f6=0x11 | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 <= u2(binary32)的 lane 掩码 | re ur fm |
cmp.gtu.f32.vu | CU op opcode=0x28 f6=0x12 | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 > u2(binary32)的 lane 掩码 | re ur fm |
cmp.geu.f32.vu | CU op opcode=0x28 f6=0x13 | fixed:4 | U[d] = EXEC 内满足 s1 unordered 或 >= u2(binary32)的 lane 掩码 | re ur fm |
cmp.class.f32.vu | CU op opcode=0x28 f6=0x14 | fixed:4 | U[d] = EXEC 内 (fclass(s1) & u2) != 0 的 lane 掩码 | re ur fm |
16 位半寄存器运算(H)(35 条)
FADD
语法(Syntax)
fadd.f16 rd:h rs1:h rs2:h rm:rm neg:mod3 abs:mod3 sat:u1
描述:d = s1 + s2(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fadd.f16 | H op opcode=0x9 f10=0x0 | fixed:5 | h16 fm rmo |
FSUB
语法(Syntax)
fsub.f16 rd:h rs1:h rs2:h rm:rm neg:mod3 abs:mod3 sat:u1
描述:d = s1 - s2(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fsub.f16 | H op opcode=0x9 f10=0x1 | fixed:5 | h16 fm rmo |
FMUL
语法(Syntax)
fmul.f16 rd:h rs1:h rs2:h rm:rm neg:mod3 abs:mod3 sat:u1
描述:d = s1 * s2(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fmul.f16 | H op opcode=0x9 f10=0x2 | fixed:5 | h16 fm rmo |
FFMA
语法(Syntax)
ffma.f16 rd:h rs1:h rs2:h rs3:h rm:rm neg:mod3 abs:mod3 sat:u1
描述:d = fma(s1, s2, s3)(显式 rm)(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
ffma.f16 | H op opcode=0x9 f10=0x3 | fixed:5 | h16 fm rmo |
FMIN
语法(Syntax)
fmin.f16 rd:h rs1:h rs2:h
描述:d = minimumNumber(s1, s2)(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fmin.f16 | H op opcode=0x9 f10=0x4 | fixed:5 | h16 fm |
FMAX
语法(Syntax)
fmax.f16 rd:h rs1:h rs2:h
描述:d = maximumNumber(s1, s2)(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fmax.f16 | H op opcode=0x9 f10=0x5 | fixed:5 | h16 fm |
FSGNJ
语法(Syntax)
fsgnj.f16 rd:h rs1:h rs2:h
描述:d = {s2.sign, s1[14:0]}(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fsgnj.f16 | H op opcode=0x9 f10=0x6 | fixed:5 | h16 |
FSGNJN
语法(Syntax)
fsgnjn.f16 rd:h rs1:h rs2:h
描述:d = {~s2.sign, s1[14:0]}(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fsgnjn.f16 | H op opcode=0x9 f10=0x7 | fixed:5 | h16 |
FSGNJX
语法(Syntax)
fsgnjx.f16 rd:h rs1:h rs2:h
描述:d = {s1.sign ^ s2.sign, s1[14:0]}(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fsgnjx.f16 | H op opcode=0x9 f10=0x8 | fixed:5 | h16 |
FFLOOR
语法(Syntax)
ffloor.f16 rd:h rs1:h
描述:d = floor(s1)(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
ffloor.f16 | H op opcode=0x9 f10=0x9 | fixed:5 | h16 fm |
FCEIL
语法(Syntax)
fceil.f16 rd:h rs1:h
描述:d = ceil(s1)(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fceil.f16 | H op opcode=0x9 f10=0xa | fixed:5 | h16 fm |
FTRUNC
语法(Syntax)
ftrunc.f16 rd:h rs1:h
描述:d = trunc(s1)(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
ftrunc.f16 | H op opcode=0x9 f10=0xb | fixed:5 | h16 fm |
FRNDNE
语法(Syntax)
frndne.f16 rd:h rs1:h
描述:d = round_half_even(s1)(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
frndne.f16 | H op opcode=0x9 f10=0xc | fixed:5 | h16 fm |
FFRACT
语法(Syntax)
ffract.f16 rd:h rs1:h
描述:d = s1 - floor(s1)(钳到 < 1.0)(binary16)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
ffract.f16 | H op opcode=0x9 f10=0xd | fixed:5 | h16 fm |
MOV
语法(Syntax)
mov.b16 rd:h rs1:h
描述:d = s1(16 位)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
mov.b16 | H op opcode=0x9 f10=0xe | fixed:5 | h16 |
ADD
语法(Syntax)
add.i16 rd:h rs1:h rs2:h
描述:16 位加法(回绕)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
add.i16 | H op opcode=0x9 f10=0xf | fixed:5 | h16 |
SUB
语法(Syntax)
sub.i16 rd:h rs1:h rs2:h
描述:16 位减法(回绕)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
sub.i16 | H op opcode=0x9 f10=0x10 | fixed:5 | h16 |
MUL
语法(Syntax)
mul.i16 rd:h rs1:h rs2:h
描述:16 位乘法(低 16 位)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
mul.i16 | H op opcode=0x9 f10=0x11 | fixed:5 | h16 |
SLL
语法(Syntax)
sll.i16 rd:h rs1:h rs2:h
描述:d = s1 << s2[3:0]
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
sll.i16 | H op opcode=0x9 f10=0x12 | fixed:5 | h16 |
SRL
语法(Syntax)
srl.i16 rd:h rs1:h rs2:h
描述:d = s1 >>u s2[3:0]
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
srl.i16 | H op opcode=0x9 f10=0x13 | fixed:5 | h16 |
SRA
语法(Syntax)
sra.i16 rd:h rs1:h rs2:h
描述:d = s1 >>s s2[3:0]
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
sra.i16 | H op opcode=0x9 f10=0x14 | fixed:5 | h16 |
AND
语法(Syntax)
and.b16 rd:h rs1:h rs2:h
描述:d = s1 & s2
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
and.b16 | H op opcode=0x9 f10=0x15 | fixed:5 | h16 |
OR
语法(Syntax)
or.b16 rd:h rs1:h rs2:h
描述:d = s1 | s2
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
or.b16 | H op opcode=0x9 f10=0x16 | fixed:5 | h16 |
XOR
语法(Syntax)
xor.b16 rd:h rs1:h rs2:h
描述:d = s1 ^ s2
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
xor.b16 | H op opcode=0x9 f10=0x17 | fixed:5 | h16 |
MIN
语法(Syntax)
min.i16 rd:h rs1:h rs2:h
min.u16 rd:h rs1:h rs2:h
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
min.i16 | H op opcode=0x9 f10=0x18 | fixed:5 | 有符号 16 位 min | h16 |
min.u16 | H op opcode=0x9 f10=0x1a | fixed:5 | 无符号 16 位 min | h16 |
MAX
语法(Syntax)
max.i16 rd:h rs1:h rs2:h
max.u16 rd:h rs1:h rs2:h
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
max.i16 | H op opcode=0x9 f10=0x19 | fixed:5 | 有符号 16 位 max | h16 |
max.u16 | H op opcode=0x9 f10=0x1b | fixed:5 | 无符号 16 位 max | h16 |
FCVT
语法(Syntax)
fcvt.f16.i16 rd:h rs1:h
fcvt.f16.u16 rd:h rs1:h
fcvt.i16.f16 rd:h rs1:h
fcvt.u16.f16 rd:h rs1:h
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
fcvt.f16.i16 | H op opcode=0x9 f10=0x1c | fixed:5 | d = half(int16(s1)),MODE.rm16 | h16 fm |
fcvt.f16.u16 | H op opcode=0x9 f10=0x1d | fixed:5 | d = half(uint16(s1)) | h16 fm |
fcvt.i16.f16 | H op opcode=0x9 f10=0x1e | fixed:5 | d = int16(s1),RTZ 饱和 | h16 fm |
fcvt.u16.f16 | H op opcode=0x9 f10=0x1f | fixed:5 | d = uint16(s1),RTZ 饱和 | h16 fm |
FCLASS
语法(Syntax)
fclass.f16 rd:h rs1:h
描述:d = fclass(s1)(10 位掩码写入半寄存器)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fclass.f16 | H op opcode=0x9 f10=0x20 | fixed:5 | h16 |
SEL
语法(Syntax)
sel.b16 rd:h rs1:h rs2:h rs3:h
描述:d = (s3 != 0) ? s1 : s2(16 位)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
sel.b16 | H op opcode=0x9 f10=0x21 | fixed:5 | h16 |
FLDEXP
语法(Syntax)
fldexp.f16 rd:h rs1:h rs2:h
描述:d = s1 * 2^(int16)s2(binary32 中精确计算后舍入)
| 变体 | 编码 | 延迟 | 标志 |
|---|---|---|---|
fldexp.f16 | H op opcode=0x9 f10=0x22 | fixed:5 | h16 fm |
16 位比较 → uniform 掩码(HC)(20 条)
CMP
语法(Syntax)
cmp.eq.f16 rd:u rs1:h rs2:h
cmp.ne.f16 rd:u rs1:h rs2:h
cmp.lt.f16 rd:u rs1:h rs2:h
cmp.le.f16 rd:u rs1:h rs2:h
cmp.gt.f16 rd:u rs1:h rs2:h
cmp.ge.f16 rd:u rs1:h rs2:h
cmp.o.f16 rd:u rs1:h rs2:h
cmp.u.f16 rd:u rs1:h rs2:h
cmp.equ.f16 rd:u rs1:h rs2:h
cmp.neu.f16 rd:u rs1:h rs2:h
cmp.ltu.f16 rd:u rs1:h rs2:h
cmp.leu.f16 rd:u rs1:h rs2:h
cmp.gtu.f16 rd:u rs1:h rs2:h
cmp.geu.f16 rd:u rs1:h rs2:h
cmp.eq.i16 rd:u rs1:h rs2:h
cmp.ne.i16 rd:u rs1:h rs2:h
cmp.lt.i16 rd:u rs1:h rs2:h
cmp.ge.i16 rd:u rs1:h rs2:h
cmp.lt.u16 rd:u rs1:h rs2:h
cmp.ge.u16 rd:u rs1:h rs2:h
| 变体 | 编码 | 延迟 | 语义 | 标志 |
|---|---|---|---|---|
cmp.eq.f16 | HC op opcode=0xd f10=0x0 | fixed:5 | U[d] = EXEC 内满足 s1 ordered == s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.ne.f16 | HC op opcode=0xd f10=0x1 | fixed:5 | U[d] = EXEC 内满足 s1 ordered != s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.lt.f16 | HC op opcode=0xd f10=0x2 | fixed:5 | U[d] = EXEC 内满足 s1 ordered < s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.le.f16 | HC op opcode=0xd f10=0x3 | fixed:5 | U[d] = EXEC 内满足 s1 ordered <= s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.gt.f16 | HC op opcode=0xd f10=0x4 | fixed:5 | U[d] = EXEC 内满足 s1 ordered > s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.ge.f16 | HC op opcode=0xd f10=0x5 | fixed:5 | U[d] = EXEC 内满足 s1 ordered >= s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.o.f16 | HC op opcode=0xd f10=0x6 | fixed:5 | U[d] = EXEC 内满足 s1 ordered(均非 NaN) s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.u.f16 | HC op opcode=0xd f10=0x7 | fixed:5 | U[d] = EXEC 内满足 s1 unordered(任一 NaN) s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.equ.f16 | HC op opcode=0xd f10=0x8 | fixed:5 | U[d] = EXEC 内满足 s1 unordered 或 == s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.neu.f16 | HC op opcode=0xd f10=0x9 | fixed:5 | U[d] = EXEC 内满足 s1 unordered 或 != s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.ltu.f16 | HC op opcode=0xd f10=0xa | fixed:5 | U[d] = EXEC 内满足 s1 unordered 或 < s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.leu.f16 | HC op opcode=0xd f10=0xb | fixed:5 | U[d] = EXEC 内满足 s1 unordered 或 <= s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.gtu.f16 | HC op opcode=0xd f10=0xc | fixed:5 | U[d] = EXEC 内满足 s1 unordered 或 > s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.geu.f16 | HC op opcode=0xd f10=0xd | fixed:5 | U[d] = EXEC 内满足 s1 unordered 或 >= s2(binary16)的 lane 掩码 | h16 re ur fm |
cmp.eq.i16 | HC op opcode=0xd f10=0xe | fixed:5 | U[d] = EXEC 内 s1 == s2 的 lane 掩码(16 位比较,只统计活跃 lane) | h16 re ur |
cmp.ne.i16 | HC op opcode=0xd f10=0xf | fixed:5 | U[d] = EXEC 内 s1 != s2 的 lane 掩码(16 位比较,只统计活跃 lane) | h16 re ur |
cmp.lt.i16 | HC op opcode=0xd f10=0x10 | fixed:5 | U[d] = EXEC 内 s1 <s s2 的 lane 掩码(16 位比较,只统计活跃 lane) | h16 re ur |
cmp.ge.i16 | HC op opcode=0xd f10=0x11 | fixed:5 | U[d] = EXEC 内 s1 >=s s2 的 lane 掩码(16 位比较,只统计活跃 lane) | h16 re ur |
cmp.lt.u16 | HC op opcode=0xd f10=0x12 | fixed:5 | U[d] = EXEC 内 s1 <u s2 的 lane 掩码(16 位比较,只统计活跃 lane) | h16 re ur |
cmp.ge.u16 | HC op opcode=0xd f10=0x13 | fixed:5 | U[d] = EXEC 内 s1 >=u s2 的 lane 掩码(16 位比较,只统计活跃 lane) | h16 re ur |